<?php
	
	// Sadrzi podatke koje unesemo sa forme
	// I stampa eventuane greske
	
	class User
	{
		private $id;
		private $user;
		private $pass;
		
		public function __construct($user, $pass){
			if(strlen($user) > 10){ // ako je user name vece duzine od 10 stampa gresku
				$this->stampajGresku("<br/>User Name mora biti max duzine 10 karaktera. ", __CLASS__, __METHOD__, __LINE__);
			}else{
				$this->user = $user;
			}
			
			$specChar = preg_match('/[^a-zA-Z\d]/', $pass);
			if($specChar){ // ako pasword sadrzi specijalne karaktere stampa gresku
				$this->stampajGresku("<br/>Password koji ste unjeli sadrzi specijalne karaktere. Specijalni karakteri nisu dozvoljeni. ", __CLASS__, __METHOD__, __LINE__);
			}else{
				$this->pass = $pass;
			}
			
		}
		
		// SET METHODS
		public function setId($val){ 
			$this->id = $val; 
		}
		
		public function setUserName($val){ 
			if(strlen($val) > 10){ // ako je user name vece duzine od 10 stampa gresku
				$this->stampajGresku("<br/>User Name mora biti max duzine 10 karaktera. ", __CLASS__, __METHOD__, __LINE__);
			}else{
				$this->user = $val;
			}
		}
		
		public function setPassword($val){
			$specChar = preg_match('/[^a-zA-Z\d]/', $val);
			if($specChar){ // ako pasword sadrzi specijalne karaktere stampa gresku
				$this->stampajGresku("<br/>Password koji ste unjeli sadrzi specijalne karaktere. Specijalni karakteri nisu dozvoljeni. ", __CLASS__, __METHOD__, __LINE__);
			}else{
				$this->pass = $val;
			}
		}
		
		// GET METHODS
		public function getID(){
			if(!empty($this->id)){
				return $this->id;
			}else{
				$this->stampajGresku("<br/>ID je prazan!!!. ", __CLASS__, __METHOD__, __LINE__);
			}
		}
		
		public function getUserName(){
			if(!empty($this->user)){ // ako je user prazan stampa gresku
				return $this->user;
			}else{
				$this->stampajGresku("<br/>User Name je prazan!!!. ", __CLASS__, __METHOD__, __LINE__);
			}
		}
		
		public function getPassword(){
			if(!empty($this->pass)){ // ako je password stampa gresku prazan stampa gresku
				return $this->pass;
			}else{
				$this->stampajGresku("<br/>Password je prazan!!!. ", __CLASS__, __METHOD__, __LINE__);
			}
		}
		
		private function stampajGresku( $text, $klasa, $metoda, $linija ){ // methoda za stampanje greske, greske stampam preko Exception-s
			$output = $text . " GRESKA:" . $klasa. " -> " . $metoda . " " . $linija;
			throw new Greska($output);
			return;
		}
		
	}
?>